package com.xavier.dong.netty.buf;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;

/**
 * @author XavierDong
 **/
public class NettyByteBuf01 {


    public static void main(String[] args) {

        // 创建 ByteBuf
        // 说明
        // 1. 创建 对象，该 对象 包含一个数组arr，是一个 byte[10]
        // 2. 在 netty 的 Buffer 中，不需要 使用 flip 反转. 因为 底层维护了 readerIndex 和 writerIndex
        // 3. 通过 readerIndex 和 writerIndex 和 capacity 将 ByteBuf 分为 3个区域
        // 0---- readerIndex: 已经读取的区域
        // readerIndex-----writerIndex:  可读的区域
        // writerIndex-----capacity: 可写的区域
        ByteBuf byteBuf = Unpooled.buffer(10);

        for (int i = 0; i < 10; i++) {
            byteBuf.writeByte(i);
        }

        System.out.println("capacity=" + byteBuf.capacity());

        // 输出
//        for (int i = 0; i < byteBuf.capacity(); i++) {
//            System.out.println(byteBuf.getByte(i));
//        }

        // 会 导致 索引移动
        for (int i = 0; i < byteBuf.capacity(); i++) {
            System.out.println(byteBuf.readByte());
        }

        System.out.println("执行完毕!!");
    }
}
